// 封装点击事件
var click = {
    /*功能：移动端的单击tap事件
     * @param1: 传入设置dom元素
     */
    tap:function(dom,callback){
        if (dom.length == 0) {
            return ;
        }
        // 移动端单击操作
        // 1. 只有一根手指
        // 2. 判断手指开始触摸和手指松开的事件差异不能大于指定的值 (因为长按也是事件)
        // 3. 保证没有滑动操作 如果有抖动 必须得保证抖动的距离在指定的范围内
        var startTime,startX,startY;
        dom.addEventListener("touchstart",function(e){
            if (e.targetTouches.length > 1) {
                return ;
            }
            // 记录手指开始触摸的时间
            startTime = Date.now();
            // 记录当前手指的坐标
            startX = e.targetTouches[0].clientX;
            startY = e.targetTouches[0].clientY;
            // 初始化工作
            
        });
        dom.addEventListener("touchend",function(e){
            // 判断是否只有一根手指
            if (e.targetTouches.length > 1) {
                return ;
            }
            // 判断时间差异
            if(Date.now() - startTime >150){
                // 长按操作
                return;
            }
            // 判断松开手指时的坐标与触摸开始时的坐标的距离的差异
            var endX = e.changedTouches[0].clientX;
            var endY = e.changedTouches[0].clientY;
            if(Math.abs(endX - startX)<20&&Math.abs(endY - startY)<20){
                // 允许抖动  有抖动区间 
                console.log("移动端的单击事件 tap事件");
                // callback不为空才执行  为回调函数传入事件源参数
                callback && callback(e);
            }
        });
    }
}